<?php session_start();
	include_once $_SERVER["DOCUMENT_ROOT"].'/outils/logger/Logger.php';

	function includeIfExists($fichier) {
		if (file_exists($fichier)) {
			include_once $fichier;
		}
	}
	
	//autres fichiers
	include_once $_SERVER["DOCUMENT_ROOT"].'/outils/parameters/ParameterGetter.php';
	include_once $_SERVER["DOCUMENT_ROOT"].'/outils/writerJSON/WriterJSON.php';
	
	try {
		$cmd = ParameterGetter::getRequestParameter("cmd", true);
		$idUC = ParameterGetter::getRequestParameter("idUC", true);
		Logger::getLogger()->logInfo("Entrée dans le Forwarder avec cmd=$cmd et idUc=$idUC");
		
		$xml = simplexml_load_file($_SERVER["DOCUMENT_ROOT"]."/config/".strtolower($idUC)."/configUC.xml");
		if ($cmd == "chargerUC") {
			Logger::getLogger()->logInfo("Chargement de l'UC '$idUC'");
			$pageName = $xml->xpath('/uc/page');
			include $_SERVER["DOCUMENT_ROOT"].$pageName[0];
		} else if ($cmd == "afficherListeAvecModif" || $cmd == "afficherListeSansModif") {
			Logger::getLogger()->logInfo("Appel au view Helper");
			$classNameArray = $xml->xpath('/uc/classeViewHelper');
			$className = (string) $classNameArray[0];
			$classPath = (string) $classNameArray[0]["path"];
			include_once $_SERVER["DOCUMENT_ROOT"].$classPath;
				
				
			Logger::getLogger()->logInfo("Appel du viewHelper par le forwarder : ".$className."::".$cmd);
			call_user_func(array($className, $cmd));
			Logger::getLogger()->logInfo("Fin de l'appel du viewHelper");
		} else {
			Logger::getLogger()->logInfo("Appel à la classe action");
			$classNameArray = $xml->xpath('/uc/classeAction');
			$className = (string) $classNameArray[0];
			$classPath = (string) $classNameArray[0]["path"];
			include_once $_SERVER["DOCUMENT_ROOT"].$classPath;
			
			
			Logger::getLogger()->logInfo("Appel par le forwarder : ".$className."::".$cmd);
			call_user_func(array($className, $cmd));
			Logger::getLogger()->logInfo("Fin de l'appel");
		}
	} catch(Exception $e) {
		WriterJSON::echoError ($e->__toString());
	}
?>